<template>
  <div class="create-order">
    <Header title="生成订单"></Header>

    <van-contact-card type="edit" :tel="tel" :name="name" @click="onEdit">
    </van-contact-card>

    <div class="content">
      <div v-for="(item,index) in store.state.orderList" :key="index">
        <van-card :num="item.num" :price="item.price" :title="item.title" :thumb="item.pic"></van-card>
      </div>
    </div>

    <div class="pay-wrap">
      <div class="price">
        <span>商品金额</span>
        <span>￥ {{ totalPrice }}</span>
      </div>
      <van-button type="primary" class="pay-btn" block color="#ffc400"
       @click="handleCreateOrder"
      >生成订单</van-button>
    </div>
  </div>
</template>

<script setup>
import Header from '@/components/Header'
import {onMounted, ref} from "vue";
import {useStore} from "vuex";
import {Dialog} from "vant";
import router from "@/router";
import {useRoute} from "vue-router";


let tel = ref('123')
let name = ref('小猫')
const store = useStore()
const route = useRoute()

const totalPrice = ref(0)

const onEdit = () => {
  router.push('/address')
}

const handleCreateOrder = () =>{
  Dialog({
    title: '提示',
    message: '订单已生成',
  }).then(() => {
    // 联动购物车数据
    // 订单结算数据 从购物车移除
    let newList = store.state.cartList.filter(item => {
      return !route.query.list.includes(item.id + '')
    })
    store.commit('delete', newList)
    store.commit('orderListEnd')
    router.push('/order')
  })
}
// 初始化价格
const initPrice = () => {
  let price = 0
  if(store.state.orderList.length){
    store.state.orderList.forEach(item => {
      price += item.num * item.price
    })
  }
  totalPrice.value = price
}
// 初始化地址
const initAddress = () => {
  store.state.userAddress.forEach(item => {
    if(item.isDefault === true){
      name.value = item.name
      tel.value = item.tel
    }
  })
}
onMounted(() => {
  initPrice()
  initAddress()
})
</script>

<style lang="less" scoped>
.create-order {
  display: flex;
  flex-flow: column;
  height: 100%;

  .content {
    flex: 1;
    overflow-y: auto;
  }

  .pay-wrap {
    padding: 10px 0;
    width: 100%;
    background: #fff;
    border-top: 1px solid #e9e9e9;

    > div {
      display: flex;
      justify-content: space-between;
      padding: 0 5%;
      margin: 10px 0;
      font-size: 14px;

      span:nth-child(2) {
        color: red;
        font-size: 18px;
      }
    }

    .pay-btn {
      width: 90%;
      margin: 0 auto;
    }
  }
}
</style>